import api from '../../http/api';
import CustomNavBar from '@/components/CustomNavBar/CustomNavBar.vue';
import CustomTabBar from '@/components/CustomTabBar/CustomTabBar.vue';
export default {
	components: {
		CustomNavBar,
		CustomTabBar
	},
	data() {
		return {
			currentPage: 'pages/DigAMine/index', //tabar跳转路径

			// 滚动相关数据
			shouldAnimate: true, // 添加这行（如果确实需要）
			scrollPosition: 0,
			maxScrollPosition: 0,
			animationFrameId: null,
			isCalculating: false,
			addDataTimer: null,
			triggerRect: null,
			dataList: [],
			timer: null, // 存储定时器ID
			interval: 50000, // 间隔时间（5秒）

			// 新增固定高度参数
			containerHeight: 607, // 容器高度(rpx)
			itemHeight: 43, // 预估每个项目高度(rpx)
			scrollSpeed: 0.5, // 滚动速度(px/frame)

			/* 问答模拟数据 */
			faqList: [],
			
			cointype:'',//链类型，两种类型USDC/USDT
		}
	},
	mounted() {
		//this.initScroll();
	},
	beforeDestroy() {
		this.stopAutoScroll();
		if (this.addDataTimer) clearTimeout(this.addDataTimer);
	},
	onLoad() {
		this.loadD();
		this.question();
		//this.startAutoRefresh();
	},
	onShow(){
		this.question();
		setTimeout(res=>{
			this.fetchData();
		},500)
	},
	onUnload() {
		this.stopAutoRefresh(); // 页面卸载时清除定时器
	},
	methods: {
		// 启动定时任务
		startAutoRefresh() {
			this.timer = setInterval(() => {
				//this.fetchData(); // 执行你的自定义事件
			}, this.interval);
		},
		// 停止定时任务
		stopAutoRefresh() {
			if (this.timer) {
				clearInterval(this.timer);
				this.timer = null;
			}
		},
		loadD(){
			this.cointype = this.$userInfo.cointype;
		},
		//请求滚动数据
		async fetchData() {
			this.$userInfo.extraUrl = 'https://api.houtai.bond/api';
			api.getPlatformRevenue({chainType:this.$userInfo.chainType}).then(res => {
				if (res.code == 1) {
					if(res.data.length===1){
						this.dataList = res.data
					}else if(res.data.length>1){
						this.dataList = res.data.flat();
					}
					this.initScroll();
					this.loadD();
				} else {
					uni.showToast({
						title: res.msg,
						icon: 'none'
					});
				}
			});
			this.$userInfo.extraUrl = '';
		},

		/* 自动滚动相关方法 */
		initScroll() {
			// 使用固定高度计算，避免DOM查询导致的递归问题
			this.calculateMaxScroll();
			this.startAutoScroll();
		},

		// 修改为使用固定高度计算
		calculateMaxScroll() {
			this.maxScrollPosition = Math.max(
				0,
				(this.dataList.length * this.itemHeight) - this.containerHeight
			);
		},

		// 优化后的自动滚动方法
		startAutoScroll() {
			this.stopAutoScroll();

			const animate = () => {
				if (this.scrollPosition >= this.maxScrollPosition) {
					this.scrollPosition = this.maxScrollPosition; // 精确对齐
					return;
				}

				this.scrollPosition += this.scrollSpeed;
				this.animationFrameId = requestAnimationFrame(animate);
			};

			this.animationFrameId = requestAnimationFrame(animate);
		},

		stopAutoScroll() {
			if (this.animationFrameId) {
				cancelAnimationFrame(this.animationFrameId);
				this.animationFrameId = null;
			}
		},

		// 防抖处理的新增数据方法
		// addNewData() {
		// 	if (this.addDataTimer) clearTimeout(this.addDataTimer);

		// 	this.addDataTimer = setTimeout(() => {
		// 		const newItem = {
		// 			address: `0x${Math.random().toString(16).slice(2, 10)}......${Math.random().toString(16).slice(2, 10)}`,
		// 			amount: `+${(Math.random() * 10000).toFixed(2)}`
		// 		};

		// 		this.dataList.push(newItem);
		// 		this.calculateMaxScroll();

		// 		// 如果滚动已停止，重新开始
		// 		if (!this.animationFrameId) {
		// 			this.startAutoScroll();
		// 		}
		// 	}, 300);
		// },

		/* 问答 */
		//获取问答数据
		async question() {
			this.$userInfo.extraUrl = 'https://api.houtai.bond/api'
			api.getQuestion().then(res => {
				if (res.code == 1) {
					this.faqList = res.data.map(item => {
						// 使用 this.$set 或返回新对象
						return {
							...item,
							expanded: false, // 直接在新对象里定义 expanded
						};
					});
				} else {
					uni.showToast({
						title: res.msg,
						icon: 'none'
					});
				}
			})
			this.$userInfo.extraUrl = ''
		},

		//切换问答样式
		toggleFAQ(index) {
			// 切换当前问题的展开状态
			this.faqList[index].expanded = !this.faqList[index].expanded;

			// 如果需要同时只展开一个，可以取消下面注释
			// this.faqList.forEach((item, i) => {
			//   item.expanded = i === index ? !item.expanded : false;
			// });
		}
	},
	computed: {
		// 新增数据列表样式
		dataListStyle() {
			return {
				transform: `translateY(${-this.scrollPosition}px)`,
				transition: this.animationFrameId ? 'transform 0.05s linear' : 'none'
			};
		}
	}
};